package com.tao.object_;

import com.tao.poly_.test.main;

public class Equals01 {
    public static void main(String[] args) {
        A a = new A();
        A b = a;
        A c = b;
        System.out.println(a==c);
        System.out.println(a==b);
        B bobj = a;
        System.out.println(bobj == c);

        //判断引用类型，是判断是不是同一个对象

        "hello".equals("nihao");
        String hello1 = new String("hello");
        String hello2 = new String("hello");
        System.out.println(hello1.equals(hello2));
        System.out.println(hello1 == hello2);
        /*
        是String中的equals方法,是将Object中的equals方法重写了
        (1)如果是同一个对象，返回true
        (2)如果两个字符串的所有字符都相等，返回true(看括号里面的数据是否一样)
        public boolean equals(Object anObject) {
            if (this == anObject) {
                return true;
            }
            if (anObject instanceof String) {
                String anotherString = (String)anObject;
                int n = value.length;
                if (n == anotherString.value.length) {
                    char v1[] = value;
                    char v2[] = anotherString.value;
                    int i = 0;
                    while (n-- != 0) {
                        if (v1[i] != v2[i])
                            return false;
                        i++;
                    }
                    return true;
                }
            }
            return false;
        }
        */

        System.out.println(a.equals(b));
        /*
        是Object中的equals方法
        //是判断两个对象是不是同一个
        public boolean equals(Object obj) {
            return (this == obj);
        }
         */

        Integer integer1 = new Integer(1000);
        Integer integer2 = new Integer(1000);
        System.out.println(integer1.equals(integer2));
        System.out.println(integer1 == integer2);
        /*
        是String中的equals方法，重写Object中的equals方法
        //就是看括号里面的数据是否一样
        public boolean equals(Object obj) {
        if (obj instanceof Integer) {
            return value == ((Integer)obj).intValue();
        }
        return false;
    }
         */
    }
}
class A extends B{}
class B{}